<?php

class Application_Model_Pays
{
	protected $_payNum;
	protected $_payNom;
	protected $_payNat;
	protected $_payAdrDrap;

	public function __construct(array $options = null)
	{
		if(is_array($options))
		{
			$this->setOptions($options);
		}
	}
	
	public function __set($name, $value)
	{
		$method = 'set' . $name;
		if(('mapper' == $name) || !method_exists($this, $method))
		{
			throw new Exception('Invalid pays property');
		}
		$this->$method($value);
	}
	public function __get($name)
	{
		$method = 'get' . $name;
		if(('mapper' == $name) || !method_exists($this, $method))
		{
			throw new Exception('Invalid pays property');
		}
		return $this->$method();
	}

	public function setOptions(array $options)
	{
		$methods = get_class_methods($this);
		foreach ($options as $key => $value)
		{
			$method = 'set' . ucfirst($key);
			if(in_array($method, $methods))
			{
				$this->$method($value);
			}
		}
		return $this;
    }
	
    public function setPayNum($payNum)
	{
		$this->_payNum = (int)$payNum;
		return $this;
	}
	public function getPayNum()
	{
		return $this->_payNum;
	}
    
	public function setPayNom($payNom)
	{
		$this->_payNom = (string)$payNom;
		return $this;
	}
	public function getPayNom()
	{
		return $this->_payNom;
	}

	public function setPayNat($payNat)
	{
		$this->_payNat = (string)$payNat;
		return $this;
	}
	public function getPayNat()
	{
		return $this->_payNat;
	}

	public function setPayAdrDrap($payAdrDrap)
	{
		$this->_payAdrDrap = (string)$payAdrDrap;
		return $this;
	}
	public function getPayAdrDrap()
	{
		return $this->_payAdrDrap;
	}
}